10 research outputs found

    CONTREX: Design of embedded mixed-criticality CONTRol systems under consideration of EXtra-functional properties

    Get PDF
    The increasing processing power of today’s HW/SW platforms leads to the integration of more and more functions in a single device. Additional design challenges arise when these functions share computing resources and belong to different criticality levels. CONTREX complements current activities in the area of predictable computing platforms and segregation mechanisms with techniques to consider the extra-functional properties, i.e., timing constraints, power, and temperature. CONTREX enables energy efficient and cost aware design through analysis and optimization of these properties with regard to application demands at different criticality levels. This article presents an overview of the CONTREX European project, its main innovative technology (extension of a model based design approach, functional and extra-functional analysis with executable models and run-time management) and the final results of three industrial use-cases from different domain (avionics, automotive and telecommunication).The work leading to these results has received funding from the European Community’s Seventh Framework Programme FP7/2007-2011 under grant agreement no. 611146

    ADAPTIVE HIERARCHICAL SCHEDULING FRAMEWORK FOR REAL-TIME SYSTEMS ADAPTIVE HIERARCHICAL SCHEDULING FRAMEWORK FOR REAL-TIME SYSTEMS

    No full text
    Populärvetenskaplig sammanfattning Moderna datorsystemär ofta utformade för att spela en mångsidig roll. Dë ar därför kapabla att köra ett antal programvaror (program) samtidigt och parallellt. Dessa programvaror bör dela processorn så att alla av dem kan köra och avsluta sina beräkningar som förväntat.Å andra sidan, i de fall där programvaror har tidskrav innebär det att de inte bara ska slutföra beräkningarna som förväntat, utanäven att dessa beräkningarna ska vara utförda i rätt tid. Således finns det ett behov av att i tid dela processorn bland olika program. Denna tidsdelning realiseras ofta genom att tilldela en fast och förutbestämd beräkningsresurs till varje program. Dock finns det en grupp av programvaror där, (i) deras efterfrågan på beräkningskraft förändras under körning, och/eller (ii) det kan tolereras att vissa beräkningar inte alltid utförs i tid. För system som innehåller program med dessa egenskaperär det inte effektivt att tilldela programmen med fasta beräkningsresurser. Om vi fördelar processorns beräkningsresurs baserad på den maximalt efterfrågade resursen för ett program, då kommer processorns beräkningskapacitet att gå till spillo för de fall då ett program kräver mindreän sin maximalt efterfrågade beräkningsresurs. För dettaändamål föreslår vi i denna avhandling ett adaptivt angreppsätt. I vårt föreslagna adaptiva system säkerställer vi, vid varje tidpunkt, att vi ger tillräckliga beräkningsresurser för varje program genom att följa den faktiska efterfrågan av beräkningsresurser. På så sätt kan vi integrera fler program i ett datorsystem som delas av flera programvaror, och samtidigt ge dessa programvaror garantier med avseende på timing. i Abstract Modern computer systems are often designed to play a multipurpose role. Therefore, they are capable of running a number of software tasks (software programs) simultaneously in parallel. These software tasks should share the processor such that all of them run and finish their computations as expected. On the other hand, a number of software tasks have timing requirements meaning that they should not only access the processing unit, but this access should also be in a timely manner. Thus, there is a need to timely share the processor among different software programs (applications). The time-sharing is often realized by assigning a fixed and predefined processor time-portion to each application. However, there exists a group of applications where, (i) their processor demand is changing in a wide range during run-time, and (ii) their occasional timing violations can be tolerated. For systems that contain applications with the two aforementioned properties, it is not efficient to assign the applications with fixed processor time-portions. Because, if we allocate the processor resource based on the maximum resource demand of the applications, then the processor's computing capacity will be wasted during the time intervals where the applications will require a smaller portion than the maximum resource demand. To this end, in this thesis we propose adaptive processor time-portion assignments. In our adaptive scheme, we monitor the actual demand of the applications during run-time, and we provide sufficient processor time-portions for each application based on their monitored demand. In doing so, we are able to integrate more applications on a shared and resource constrained system, while at the same time providing the applications with timing guarantees. Furthermore, many thanks goes to my office-mate Mikael who has guided me in evaluating my research through Linux implementations. In addition, I would like to thank Farhang, Lu, Hang, Mohammad, Sara, Meng, Daniel, Hamid, Sina, Dana, Rafia, Aida, Adnan, Leo, Svetlana, Saad, Abhilash, Mahnaz, Andreas, Mehrdad, Farhad, Huseyin, Ali, Gabriel, Eduard, Omar, Henrik, Raluca, Apala, Irfan, Jagadish, Kan, Jiale for the good company during courses, conference trips, PhD schools and/or lunches. Last but not least, I would like to express my very great appreciation to my beloved wife, Arefeh, for the endless energy and love that she brings to my life, and acknowledge my parents' unwavering support

    Towards Adaptive Hierarchical Scheduling of Real-time Systems

    No full text
    Hierarchical scheduling provides predictable timing and temporal isolation; two properties desirable in real-time embedded systems. In hierarchically scheduled systems, subsystems should receive a sufficient amount of CPU resources in order to be able to guarantee timing constraints of its internal parts (tasks). In static systems, an exact amount of CPU resource can be allocated to a subsystem. However, in dynamic systems, where execution times of tasks vary considerably during run-time, it is desirable to give a dynamic portion of the CPU given the current load situation. In this thesis we present a feedback control approach for adapting the amount of CPU resource that is allocated to subsystems during run-time such that each subsystem receives sufficient resources while keeping the number of deadline violations to a minimum. We also show some example simulations where the controller adapts the budget of a subsystems.If we allocate CPU only based on subsystems demand and don't take into account the availability of the resource, timing guarantees of the lower priority subsystems (using a priority based scheduler in the global level) will be violated in the overload situations. In such a situation the high criticality modules should be superior to the low criticality modules in receiving resources. In this thesis, in the extension of our adaptive framework, we propose two techniques for controlling the CPU distribution among modules in an overload circumstance. First we introduce the notion of subsystem criticality and then distribute CPU portions based on the criticality level of subsystems

    Adaptive and Flexible Scheduling Frameworks for Component-Based Real-Time Systems

    No full text
    Modern computer systems are often designed to play a multipurpose role. Therefore, they are capable of running a number of software components (software programs) simultaneously in parallel. These software components should share the system resources (e.g. processor and network) such that all of them run and finish their computations as expected. On the other hand, a number of software components have timing requirements meaning that they should not only access the resources, but this access should also be in a timely manner. Thus, there is a need to timely share the resources among different software components. The time-sharing is often realized by reserving a time-portion of resources for each component. Such a reservation should be adequate and resource-efficient. It should be sufficient to preserve the timing properties of the components. Also, the reservations should be resource-efficient to reduce the components' footprint on the resources which in turn allows integration of more software components on a given hardware resource. In this thesis, we mainly focus on the resource-efficiency of the reservations. We consider two cases. (I) Components which can tolerate occasional timing violations (soft real-time components): in this case we adjust the reservations during run-time to match the reservation sizes based on the instantaneous requirements of the components. (II) Components which cannot tolerate any timing violations (hard real-time components): in this case we use flexible approaches which allow us to improve the resource-efficiency at the design time.Moderna datasystem är ofta utformade för att spela en mångsidig roll. De är därför kapabla till att köra flera mjukvarukomponenter (programvaror) samtidigt. Dessa mjukvarukomponenter delar systemresurser (t.ex. processorn och nätverket) under körning. Målet med mjukvarukomponentens körning är att avsluta sina beräkningar som förväntat. Vissa mjukvarukomponenter har även tidskrav vilket innebär att de inte bara kräver tillgång till systemresurser för att köra sina beräkningar, utan de har även krav på när denna tillgång sker för att mjukvarukomponenterna ska för rätt funktion kunna garantera att beräkningar utförs i rätt tid. Således finns det ett behov av att snabbt dela resurser mellan olika mjukvarukomponenter. Den tids-delning realiseras ofta genom att reservera en tidslucka för komponenten då denna är tänkt att och får använda resursen. Reservationen måste vara tillräcklig för att mjukvarukomponenten ska kunna köra som förväntat. Reservationen måste även tilldelas resurseffektivt dvs resurstid får inte slösas bort i onödan. Genom en resurseffektiv reservation av resurserminskar komponentens fotavtryck på resursen som i sin tur möjliggör integration av flera programvarukomponenter på samma resurs. Denna avhandling fokuserar främst på resurseffektivitet i samband med reservationerna. Två fall behandlas. (I) Komponenter som tål att missa vissa enstaka tidskrav (så kallade mjuka realtidskomponenter): i det här fallet anpassas reservationerna under körning enligt komponenternas ständigt föränderliga önskemål på reservationsstorlek. (II) Komponenter som inte kan hantera att tidskrav överträds (så kallade hårda realtidskomponenter): i det här fallet används flexibla strategier som möjliggör  förbättrad resurseffektiviteten redan vid design av systemet

    Adaptive and Flexible Scheduling Frameworks for Component-Based Real-Time Systems

    No full text
    Modern computer systems are often designed to play a multipurpose role. Therefore, they are capable of running a number of software components (software programs) simultaneously in parallel. These software components should share the system resources (e.g. processor and network) such that all of them run and finish their computations as expected. On the other hand, a number of software components have timing requirements meaning that they should not only access the resources, but this access should also be in a timely manner. Thus, there is a need to timely share the resources among different software components. The time-sharing is often realized by reserving a time-portion of resources for each component. Such a reservation should be adequate and resource-efficient. It should be sufficient to preserve the timing properties of the components. Also, the reservations should be resource-efficient to reduce the components' footprint on the resources which in turn allows integration of more software components on a given hardware resource. In this thesis, we mainly focus on the resource-efficiency of the reservations. We consider two cases. (I) Components which can tolerate occasional timing violations (soft real-time components): in this case we adjust the reservations during run-time to match the reservation sizes based on the instantaneous requirements of the components. (II) Components which cannot tolerate any timing violations (hard real-time components): in this case we use flexible approaches which allow us to improve the resource-efficiency at the design time.Moderna datasystem är ofta utformade för att spela en mångsidig roll. De är därför kapabla till att köra flera mjukvarukomponenter (programvaror) samtidigt. Dessa mjukvarukomponenter delar systemresurser (t.ex. processorn och nätverket) under körning. Målet med mjukvarukomponentens körning är att avsluta sina beräkningar som förväntat. Vissa mjukvarukomponenter har även tidskrav vilket innebär att de inte bara kräver tillgång till systemresurser för att köra sina beräkningar, utan de har även krav på när denna tillgång sker för att mjukvarukomponenterna ska för rätt funktion kunna garantera att beräkningar utförs i rätt tid. Således finns det ett behov av att snabbt dela resurser mellan olika mjukvarukomponenter. Den tids-delning realiseras ofta genom att reservera en tidslucka för komponenten då denna är tänkt att och får använda resursen. Reservationen måste vara tillräcklig för att mjukvarukomponenten ska kunna köra som förväntat. Reservationen måste även tilldelas resurseffektivt dvs resurstid får inte slösas bort i onödan. Genom en resurseffektiv reservation av resurserminskar komponentens fotavtryck på resursen som i sin tur möjliggör integration av flera programvarukomponenter på samma resurs. Denna avhandling fokuserar främst på resurseffektivitet i samband med reservationerna. Två fall behandlas. (I) Komponenter som tål att missa vissa enstaka tidskrav (så kallade mjuka realtidskomponenter): i det här fallet anpassas reservationerna under körning enligt komponenternas ständigt föränderliga önskemål på reservationsstorlek. (II) Komponenter som inte kan hantera att tidskrav överträds (så kallade hårda realtidskomponenter): i det här fallet används flexibla strategier som möjliggör  förbättrad resurseffektiviteten redan vid design av systemet

    Adaptive Hierarchical Scheduling Framework for Real-Time Systems

    No full text
    Modern computer systems are often designed to play a multipurpose role. Therefore, they are capable of running a number of software tasks (software programs) simultaneously in parallel. These software tasks should share the processor such that all of them run and finish their computations as expected. On the other hand, a number of software tasks have timing requirements meaning that they should not only access the processing unit, but this access should also be in a timely manner. Thus, there is a need to timely share the processor among different software programs (applications). The time-sharing often is realized by assigning a fixed and predefined processor time-portion to each application. However, there exists a group of applications where, i) their processor demand is changing in a wide range during run-time, and/or ii) their occasional timing violations can be tolerated. For systems that contain applications with the two aforementioned properties, it is not efficient to assign the applications with fixed processor time-portions. Because, if we allocate the processor resource based on the maximum resource demand of the applications, then the processor's computing capacity will be wasted during the time intervals where the applications will require a smaller portion than maximum resource demand. To this end, in this thesis we propose adaptive processor time-portion assignments. In our adaptive scheme, at each point in time, we monitor the actual demand of the applications, and we provide sufficient processor time-portions for each application. In doing so, we are able to integrate more applications on a shared and resource constrained system, while at the same time providing the applications with timing guarantees

    Adaptive Hierarchical Scheduling Framework : Configuration and Evaluation

    No full text
    We have introduced an adaptive hierarchicalscheduling framework as a solution for composing dynamic realtime systems, i.e., systems where the CPU demand of its tasks aresubjected to unknown and potentially drastic changes during runtime. The framework consists of a controller which periodicallyadapts the system to the current load situation. In this paper,we unveil and explore the detailed behavior and performanceof such an adaptive framework. Specifically, we investigate thecontroller configurations enabling efficient control parameterswhich maximizes performance, and we evaluate the adaptiveframework against a traditional static one

    Intra-component resource sharing on a virtual multiprocessor platform

    No full text
    Component-based software development facilitates the development process of large and complex software systems. By the advent of multiprocessors, the independently developed components can be integrated on a multi-core platform to achieve an efficient use of system hardware and a decrease in system power consumption and costs. In this paper, we consider a virtual multiprocessor platform where each component can be dynamically allocated to any set of processors of the platform with a maximum concurrency level. Global-EDF is used for intra-component scheduling. The existing analysis for such systems have assumed that tasks are independent. In this paper, we enable intra-component resource sharing for this platform. We investigate using a spin-based resource sharing protocol with the accompanying analysis that extends the existing analysis for independent tasks. We briefly illustrate and evaluate our initial results with an example
    corecore